package com.xuxueli.applyModules.mapper;
import com.xuxueli.applyModules.dto.CompareDto;
import com.xuxueli.applyModules.entity.ReturnPoint;
import com.xuxueli.applyModules.entity.YuJingView;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * 本科生指标
 * @since 2022-01-05 14:31:37
 */
@Mapper
public interface BkszbMapper {

    /**
     * 通过ID查询指标概览
     *
     * @param xh 主键
     * @return 实例对象
     */
    List<Map> queryByXh(@Param("xh") String xh, @Param("type") String type,
                        @Param("xydm") String xydm, @Param("nj") String nj, @Param("zydm") String zydm);

    /**
     * 通过ID查询指标详细
     * @return 实例对象
     */
    List<Map<String, String>> queryDetailByXh(@Param("params") Map<String, Object> params);

    String queryColumn(@Param("params") Map<String, Object> params);

    Integer queryScore(@Param("params") Map<String, Object> params);

    /**
     * 查询指标分为空数据
     * @return 实例对象
     */
    @MapKey("xh")
    List<Map<String, String>> queryMaps(@Param("params") Map<String, Object> params);

    /**
     * 通过ID查询指标详细备注
     * @return 实例对象
     */
    @MapKey("xh")
    List<Map<String, Object>> queryDetailCommentByXh(@Param("params") Map<String, Object> params);

    /**
     * 查询排名情况
     *
     * @param xh 主键
     * @return 实例对象
     */
    @MapKey("xh")
    List<Map<String, Object>> queryClassOrderByXh(@Param("maps") List<Map<String, Object>> maps, @Param("xh") String xh, @Param("level") String level);

    /**
     * 比一比计算当前分数阶段以及人数比率
     * @return 实例对象
     */
    @MapKey("xh")
    List<CompareDto> queryCompareStageByXh(@Param("params") Map<String, Object> params);
    //List<Map<String, Object>> queryCompareStageByXh(@Param("params") Map<String, Object> params);

    /**
     * 比一比计算当前分,最高分和最低分
     * @return 实例对象
     */
    ReturnPoint queryCompareByXh(@Param("params") Map<String, Object> params);

    List<Map<String, Object>> queryXhs(@Param("xh") String xh, @Param("level") String level, @Param("nj") String nj);

    /**
     * 指标不区分离校
     * @param xh
     * @param level
     * @param nj
     * @return
     */
    List<Map<String, Object>> queryXhsZb(@Param("xh") String xh, @Param("level") String level, @Param("nj") String nj);

    @MapKey("code")
    List<Map<String, Object>> queryDescription(@Param("type") String type, @Param("xydm") String xydm);

    List<YuJingView> getList(@Param("type") String type, @Param("xh") String xh);

}

